5.3 类的访问控制¶
访问说明符¶
C++中我们用访问说明符来将强类的封装性:
public:定义在public说明符之后的成员在整个程序内可被访问,public成员定义类的接口private:定义在private说明符之后的成员可以被类的成员函数访问,但是不能被使用该类的代码访问
struct和class的区别¶
编码规范:仅当只有数据成员时使用
struct,其他一概使用class。struct一般用于定义包含数据的被动式对象,也可以包含相关的常量,但除了存取数据成员外没有其他函数功能,并且存取功能时通过直接访问位域而非函数调用。除了构造函数、析构函数、Initialize()、Reset()和Validate()等类似的用于设定数据成员的函数外,不能提供其他功能的函数。
struct和class唯一的区别在于默认访问权限不一样:
struct:成员默认访问权限是public的class:成员默认访问权限是private的
友元¶
Tips:为了使友元对类的用于可见,我们通常把友元的声明与类本身放置在同一个头文件中。
类可以允许其他类或者函数访问它的非公有成员,方法是令其他类或者函数成为它的友元。
class Foo {
// 友元声明一般在类定义开始的位置集中声明
friend Foo add(const Foo&, const Foo&);
// ...
};
// Foo接口的非成员组成部分的声明
Foo add(const Foo&, const Foo&);